Computerized method, processing structure and server for controlling a target-motion device based on source-motion object

ABSTRACT

A computerized method for controlling a target-motion device based on motion of a first source-motion object. The method has the steps of: capturing motion-related data at the first source-motion object, the motion-related data representing the mootion of the first source-motion object; processing, at the first source-motion object, the motion-related data by converting captured motion-related data from a first format to a second format; transmitting the processed motion-related data to a server; forwarding, by the server, the processed motion-related data to the target-motion device; and moving at least a portion of the target-motion device based on at least the processed motion-related data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 62/894,486, filed Aug. 30, 2019, the content ofwhich is incorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

This invention relates generally to motion device and more particularly,to systems and methods for mapping motion-related parameters of remote,source-motion objects such as vehicles, animals, human being, and thelike moving at remote locations for replaying the motion thereof on oneor more target motion devices.

BACKGROUND

Racing has captured the interest of both gaming and live sports sinceinception. Gaming simulations and physical events converge in the worldof electronic sports (“e-sports”). This provides an opportunity for newmethod and apparatus to evolve to bridge the gap between simulationsbased on static content sources and live tactile events.

SUMMARY

A method and apparatus of a system that captures and transmits motiondata from a source-motion object to a target-motion device is described.In an exemplary embodiment, a device receives a request for themotion-related data from the target-motion device and captures themotion data from the device. Furthermore, the device processes themotion data by converting captured motion data from a first format to asecond format. The device additionally transmits the processed motiondata to a broker, where the broker forwards the processed motion data tothe target-motion device and the target-motion device replays theprocessed motion data to move the target-motion device according to atleast the processed motion data.

In various embodiments, the source-motion object may be a vehicle, ananimal or livestock, a human, or the like, moving at a remote location.

In a further embodiment, a device replays motion data on a target-motiondevice captured on a source-motion object. In one embodiment, the devicerequests a set of available source-motion objects, wherein each of theset of source-motion objects providing motion data that can be replayedon the device. Furthermore, the device receives the set of availablesource-motion objects and selects one of the set of availablesource-motion objects. In addition, the device receives the motion datafrom the one of the selected available source-motion objects via abroker. The device further processes the motion data. The deviceadditionally, for each unit of the processed motion data, sends the unitof the processed motion data to an actuator component coupled to thedevice, wherein the actuator component processes the unit of motion datacausing motion for a user component of the device.

Other methods and apparatuses are also described.

According to one aspect of this disclosure, there is provided acomputerized method for controlling a target-motion device based onmotion of a first source-motion object. The method comprises: capturingmotion-related data at the first source-motion object, themotion-related data representing the motion of the first source-motionobject; processing, at the first source-motion object, themotion-related data by converting captured motion-related data from afirst format to a second format; transmitting the processedmotion-related data to a server; forwarding, by the server, theprocessed motion-related data to the target-motion device; and moving atleast a portion of the target-motion device based on at least theprocessed motion-related data.

In some embodiments, the computerized method further comprisesreceiving, on the first source-motion object, a request for themotion-related data sent from the target-motion device.

In some embodiments, said processing, at the first source-motion object,the motion-related data comprises: processing, at the firstsource-motion object, the motion-related data by converting capturedmotion-related data from a first format to a text-based format.

In some embodiments, the computerized method further comprisespublishing the processed motion-related data on the server.

In some embodiments, the computerized method further comprises:maintaining a first channel one the server for the first source-motionobject; and publishing the processed motion-related data on the firstchannel on the server.

In some embodiments, the computerized method further comprises:receiving a request from the target-motion device for subscribing thefirst channel; if the target-motion device is connected to a secondchannel of a second source-motion object, disconnecting thetarget-motion device from the second channel; and connecting thetarget-motion device to the first channel. In some embodiments, thecomputerized method further comprises organizing the processedmotion-related data in a hierarchical structure having a plurality oftopics.

In some embodiments, the computerized method further comprises scalingat least a portion of the processed motion-related data.

In some embodiments, the computerized method further comprises adjustinga coordinate system of at least a portion of the processedmotion-related data for adapting to the target-motion device.

In some embodiments, the computerized method further comprises storingat least a portion of the processed motion-related data.

In some embodiments, the computerized method further comprises:capturing audio/video data related to the first source-motion object;transmitting the audio/visual data to the target-motion device via theserver; and presenting the audio/visual data on the target-motiondevice.

In some embodiments, the computerized method further comprisestemporally synchronizing, on the target-motion device, the audio/visualdata with the processed motion-related data.

In some embodiments, said capturing the motion-related data furthercomprises: capturing the motion-related data of the first source-motionobject in x, y, and z planes.

In some embodiments, said capturing the motion-related data furthercomprises: capturing the motion-related data from at least one sensorcoupled to the first source-motion object, wherein the motion-relateddata comprises at least one of a linear velocity, an acceleration, avibration, thermal data, an altitude, gyroscopic data, and batteryvoltage.

In some embodiments, the first source-motion object is one of a vehiclemovable on the ground, a vehicle movable on or in water, a vehiclemovable in the air, and a vehicle movable in the space.

In some embodiments, the first source-motion object is one of a racecar, an emergency vehicle, and a training vehicle.

In some embodiments, the target-motion device comprises a usercompartment coupled to a set of one or more actuators; and said movingthe at least portion of the target-motion device based on at least theprocessed motion-related data comprises: controlling the one or moreactuators based on at least the processed motion-related data for movingthe user compartment.

In some embodiments, said transmitting the processed motion-related datato the server comprises: transmitting the processed motion-related datato the server using a Message Queueing Telemetry Transport protocol.

In some embodiments, said capturing the motion-related data at the firstsource-motion object comprises: capturing the motion-related data usinga sensor on a controlling component of the first source-motion objectfor generating a motion event associated with the controlling component.

In some embodiments, the controlling component is at least one of asteering wheel, accelerator pedal, brake pedal, and a joystick.

In some embodiments, the computerized method further comprises:receiving one or more instructions from the target-motion device;transmitting the one or more instructions to the first source-motionobject; and controlling the first source-motion object based on the oneor more instructions.

In some embodiments, said transmitting the one or more instructions tothe first source-motion object comprises: transmitting the one or moreinstructions to the first source-motion object via the server.

According to one aspect of this disclosure, there is provided acomputerized method for controlling a target-motion device based onmotion of a first source-motion object. The method comprises: receivingmotion-related data from a server, the motion-related data representingthe motion of the first source-motion object; processing themotion-related data by the target-motion device; and for each unit ofthe processed motion-related data, controlling an actuator componentcoupled to the target-motion device based on the unit of the processedmotion-related data for causing motion of at least a portion of thetarget-motion device.

In some embodiments, the computerized method further comprises sending arequest for the motion-related data of the first source-motion object.

In some embodiments, said receiving the motion-related data from thefirst source-motion object via the server comprises: receiving themotion-related data in a text-based format from the server.

In some embodiments, said receiving the motion-related data from thefirst source-motion object via the server comprises: receiving themotion-related data from a first channel on the server.

In some embodiments, the computerized method further comprises: sendinga request for available source-motion objects; receiving a list of theavailable source-motion objects, said list of the availablesource-motion objects comprising the first source-motion object;selecting the first source-motion object from the list of the availablesource-motion objects; if the target-motion device is connected to asecond channel of a second source-motion object, disconnecting thetarget-motion device from the second channel; and connecting thetarget-motion device to the first channel on the server.

In some embodiments, the received motion-related data is organized in ahierarchical structure having a plurality of topics.

In some embodiments, the computerized method further comprises scalingat least a portion of the received motion-related data.

In some embodiments, the computerized method further comprises adjustinga coordinate system of at least a portion of the processedmotion-related data for adapting to the target-motion device.

In some embodiments, the computerized method further comprises:receiving the audio/visual data associated with the first source-motionobject; and presenting the audio/visual data on the target-motiondevice.

In some embodiments, the computerized method further comprisestemporally synchronizing, on the target-motion device, the audio/visualdata with the received motion-related data.

In some embodiments, the received motion-related data represents themotion of the first source-motion object in x, y, and z planes.

In some embodiments, the received motion-related data comprises at leastone of a linear velocity, an acceleration, a vibration, thermal data, analtitude, gyroscopic data, and battery voltage.

In some embodiments, the first source-motion object is one of a vehiclemovable on the ground, a vehicle movable on or in water, a vehiclemovable in the air, and a vehicle movable in the space.

In some embodiments, the first source-motion object is one of a racecar, an emergency vehicle, and a training vehicle.

In some embodiments, the actuator component comprises a set of one ormore actuators coupled a user compartment; and said, for each unit ofthe processed motion-related data, controlling the actuator componentcoupled to the target-motion device based on the unit of the processedmotion-related data for causing the motion of the at least portion ofthe target-motion device comprises: for each unit of the processedmotion-related data, controlling the one or more actuators based on theunit of the processed motion-related data for moving the usercompartment.

In some embodiments, the motion-related data comprising data captured bya sensor on a controlling component of the first source-motion objectrepresenting a motion event associated with the controlling component.

In some embodiments, the controlling component is at least one of asteering wheel, accelerator pedal, brake pedal, and a joystick.

In some embodiments, the computerized method further comprises:receiving one or more instructions from the target-motion device; andtransmitting the one or more instructions to the server for controllingthe first source-motion object.

According to one aspect of this disclosure, there is provided one ormore non-transitory computer-readable storage devices comprisingcomputer-executable instructions for controlling a target-motion devicebased on motion of a first source-motion object. The instructions, whenexecuted, cause a processing structure to perform actions comprising:capturing motion-related data at the first source-motion object, themotion-related data representing the motion of the first source-motionobject; processing, at the first source-motion object, themotion-related data by converting captured motion-related data from afirst format to a second format; transmitting the processedmotion-related data to a server; forwarding, by the server, theprocessed motion-related data to the target-motion device; and moving atleast a portion of the target-motion device based on at least theprocessed motion-related data.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: receiving,on the first source-motion object, a request for the motion-related datasent from the target-motion device.

In some embodiments, said processing, at the first source-motion object,the motion-related data comprises: processing, at the firstsource-motion object, the motion-related data by converting capturedmotion-related data from a first format to a text-based format.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: publishingthe processed motion-related data on the server.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: maintaininga first channel one the server for the first source-motion object; andpublishing the processed motion-related data on the first channel on theserver.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: receiving arequest from the target-motion device for subscribing the first channel;if the target-motion device is connected to a second channel of a secondsource-motion object, disconnecting the target-motion device from thesecond channel;

and connecting the target-motion device to the first channel.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: organizingthe processed motion-related data in a hierarchical structure having aplurality of topics.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: scaling atleast a portion of the processed motion-related data.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: adjusting acoordinate system of at least a portion of the processed motion-relateddata for adapting to the target-motion device.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: storing atleast a portion of the processed motion-related data.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: capturingaudio/video data related to the first source-motion object; transmittingthe audio/visual data to the target-motion device via the server; andpresenting the audio/visual data on the target-motion device.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: temporallysynchronizing, on the target-motion device, the audio/visual data withthe processed motion-related data.

In some embodiments, said capturing the motion-related data furthercomprises: capturing the motion-related data of the first source-motionobject in x, y, and z planes.

In some embodiments, said capturing the motion-related data furthercomprises: capturing the motion-related data from at least one sensorcoupled to the first source-motion object, wherein the motion-relateddata comprises at least one of a linear velocity, an acceleration, avibration, thermal data, an altitude, gyroscopic data, and batteryvoltage.

In some embodiments, the first source-motion object is one of a vehiclemovable on the ground, a vehicle movable on or in water, a vehiclemovable in the air, and a vehicle movable in the space.

In some embodiments, the first source-motion object is one of a racecar, an emergency vehicle, and a training vehicle.

In some embodiments, the target-motion device comprises a usercompartment coupled to a set of one or more actuators; and said movingthe at least portion of the target-motion device based on at least theprocessed motion-related data comprises: controlling the one or moreactuators based on at least the processed motion-related data for movingthe user compartment.

In some embodiments, said transmitting the processed motion-related datato the server comprises: transmitting the processed motion-related datato the server using a Message Queueing Telemetry Transport protocol.

In some embodiments, said capturing the motion-related data at the firstsource-motion object comprises: capturing the motion-related data usinga sensor on a controlling component of the first source-motion objectfor generating a motion event associated with the controlling component.

In some embodiments, the controlling component is at least one of asteering wheel, accelerator pedal, brake pedal, and a joystick.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: receivingone or more instructions from the target-motion device; transmitting theone or more instructions to the first source-motion object; andcontrolling the first source-motion object based on the one or moreinstructions.

In some embodiments, said transmitting the one or more instructions tothe first source-motion object comprises: transmitting the one or moreinstructions to the first source-motion object via the server.

According to one aspect of this disclosure, there is provided one ormore non-transitory computer-readable storage devices comprisingcomputer-executable instructions for controlling a target-motion devicebased on motion of a first source-motion object. The instructions, whenexecuted, cause a processing structure to perform actions comprising:receiving motion-related data from a server, the motion-related datarepresenting the motion of the first source-motion object; processingthe motion-related data by the target-motion device; and for each unitof the processed motion-related data, controlling an actuator componentcoupled to the target-motion device based on the unit of the processedmotion-related data for causing motion of at least a portion of thetarget-motion device.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: sending arequest for the motion-related data of the first source-motion object.

In some embodiments, said receiving the motion-related data from thefirst source-motion object via the server comprises: receiving themotion-related data in a text-based format from the server.

In some embodiments, said receiving the motion-related data from thefirst source-motion object via the server comprises: receiving themotion-related data from a first channel on the server.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: sending arequest for available source-motion objects; receiving a list of theavailable source-motion objects, said list of the availablesource-motion objects comprising the first source-motion object;selecting the first source-motion object from the list of the availablesource-motion objects; if the target-motion device is connected to asecond channel of a second source-motion object, disconnecting thetarget-motion device from the second channel; and connecting thetarget-motion device to the first channel on the server. In someembodiments, the received motion-related data is organized in ahierarchical structure having a plurality of topics.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: scaling atleast a portion of the received motion-related data.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: adjusting acoordinate system of at least a portion of the processed motion-relateddata for adapting to the target-motion device.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: receivingthe audio/visual data associated with the first source-motion object;and presenting the audio/visual data on the target-motion device.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: temporallysynchronizing, on the target-motion device, the audio/visual data withthe received motion-related data.

In some embodiments, the received motion-related data represents themotion of the first source-motion object in x, y, and z planes.

In some embodiments, the received motion-related data comprises at leastone of a linear velocity, an acceleration, a vibration, thermal data, analtitude, gyroscopic data, and battery voltage.

In some embodiments, the first source-motion object is one of a vehiclemovable on the ground, a vehicle movable on or in water, a vehiclemovable in the air, and a vehicle movable in the space.

In some embodiments, the first source-motion object is one of a racecar, an emergency vehicle, and a training vehicle.

In some embodiments, the actuator component comprises a set of one ormore actuators coupled a user compartment; and said, for each unit ofthe processed motion-related data, controlling the actuator componentcoupled to the target-motion device based on the unit of the processedmotion-related data for causing the motion of the at least portion ofthe target-motion device comprises: for each unit of the processedmotion-related data, controlling the one or more actuators based on theunit of the processed motion-related data for moving the usercompartment. In some embodiments, the motion-related data comprisingdata captured by a sensor on a controlling component of the firstsource-motion object representing a motion event associated with thecontrolling component.

In some embodiments, the controlling component is at least one of asteering wheel, accelerator pedal, brake pedal, and a joystick.

In some embodiments, the instructions, when executed, cause theprocessing structure to perform further actions comprising: receivingone or more instructions from the target-motion device; and transmittingthe one or more instructions to the server for controlling the firstsource-motion object.

According to one aspect of this disclosure, there is provided a serverfor controlling a target-motion device based on motion of a firstsource-motion object. The server comprises: one or more communicationcomponents; one or more storage components; and one or more processorscoupled to the one or more communication components and the one or morestorage components for: receiving motion-related data from the firstsource-motion object via a network, the motion-related data representingthe motion of the first source-motion object; and forwarding theprocessed motion-related data to the target-motion device for moving atleast a portion thereof based on at least the motion-related data.

In some embodiments, the motion-related data is in a text-based formatconverted from data captured at the first source-motion object.

In some embodiments, the one or more processors are further adapted forpublishing the motion-related data.

In some embodiments, the one or more processors are further adapted for:maintaining a first channel for the first source-motion object; andpublishing the processed motion-related data on the first channel.

In some embodiments, the one or more processors are further adapted for:receiving a request from the target-motion device for subscribing thefirst channel; if the target-motion device is connected to a secondchannel of a second source-motion object, disconnecting thetarget-motion device from the second channel; and connecting thetarget-motion device to the first channel.

In some embodiments, the one or more processors are further adapted fororganizing the motion-related data in a hierarchical structure having aplurality of topics.

In some embodiments, the one or more processors are further adapted forscaling at least a portion of the motion-related data.

In some embodiments, the one or more processors are further adapted foradjusting a coordinate system of at least a portion of the processedmotion-related data for adapting to the target-motion device.

In some embodiments, the one or more processors are further adapted forstoring at least a portion of the processed motion-related data.

In some embodiments, the one or more processors are further adapted for:receiving audio/video data related to the first source-motion object;and transmitting the audio/visual data to the target-motion device forpresenting the audio/visual data on the target-motion device.

In some embodiments, said the motion-related data comprises data of thefirst source-motion object in x, y, and z planes.

In some embodiments, the motion-related data further comprises at leastone of a linear velocity, an acceleration, a vibration, thermal data, analtitude, gyroscopic data, and battery voltage.

In some embodiments, the first source-motion object is one of a vehiclemovable on the ground, a vehicle movable on or in water, a vehiclemovable in the air, and a vehicle movable in the space.

In some embodiments, the first source-motion object is one of a racecar, an emergency vehicle, and a training vehicle.

In some embodiments, said receiving the motion-related data from thefirst source-motion object via the network comprises: receiving themotion-related data from the first source-motion object via the networkusing a Message Queueing Telemetry Transport protocol.

In some embodiments, the motion-related data comprises data captured bya sensor on a controlling component of the first source-motion object.

In some embodiments, the controlling component is at least one of asteering wheel, accelerator pedal, brake pedal, and a joystick.

In some embodiments, the one or more processors are further adapted for:receiving one or more instructions from the target-motion device; andtransmitting the one or more instructions to the first source-motionobject for controlling the first source-motion object based on the oneor more instructions.

According to one aspect of this disclosure, there is provided atarget-motion device controllable based on motion of a firstsource-motion object. The target-motion device comprises:

an actuator component; one or more communication components; one or morestorage components; and one or more processors coupled to the one ormore communication components, the one or more storage components, andthe actuator component for: receiving motion-related data from a server,the motion-related data representing the motion of the firstsource-motion object; processing the motion-related data by thetarget-motion device; and for each unit of the processed motion-relateddata, controlling the actuator component based on the unit of theprocessed motion-related data for causing motion of at least a portionof the target-motion device.

In some embodiments, the one or more processors are further adapted forsending a request for the motion-related data of the first source-motionobject.

In some embodiments, said receiving the motion-related data from thefirst source-motion object via the server comprises: receiving themotion-related data in a text-based format from the server.

In some embodiments, said receiving the motion-related data from thefirst source-motion object via the server comprises: receiving themotion-related data from a first channel on the server. In someembodiments, the one or more processors are further adapted for: sendinga request for available source-motion objects; receiving a list of theavailable source-motion objects, said list of the availablesource-motion objects comprising the first source-motion object;selecting the first source-motion object from the list of the availablesource-motion objects; if the target-motion device is connected to asecond channel of a second source-motion object, disconnecting thetarget-motion device from the second channel; and connecting thetarget-motion device to the first channel on the server.

In some embodiments, the received motion-related data is organized in ahierarchical structure having a plurality of topics.

In some embodiments, the one or more processors are further adapted forscaling at least a portion of the received motion-related data.

In some embodiments, the one or more processors are further adapted foradjusting a coordinate system of at least a portion of the processedmotion-related data for adapting to the target-motion device.

In some embodiments, the one or more processors are further adapted for:receiving the audio/visual data associated with the first source-motionobject; and presenting the audio/visual data.

In some embodiments, the one or more processors are further adapted fortemporally synchronizing, on the target-motion device, the audio/visualdata with the received motion-related data.

In some embodiments, the received motion-related data represents themotion of the first source-motion object in x, y, and z planes.

In some embodiments, the received motion-related data comprises at leastone of a linear velocity, an acceleration, a vibration, thermal data, analtitude, gyroscopic data, and battery voltage.

In some embodiments, the first source-motion object is one of a vehiclemovable on the ground, a vehicle movable on or in water, a vehiclemovable in the air, and a vehicle movable in the space.

In some embodiments, the first source-motion object is one of a racecar, an emergency vehicle, and a training vehicle.

In some embodiments, the actuator component comprises a set of one ormore actuators coupled a user compartment; and said, for each unit ofthe processed motion-related data, controlling the actuator componentbased on the unit of the processed motion-related data for causing themotion of the at least portion of the target-motion device comprises:for each unit of the processed motion-related data, controlling the oneor more actuators based on the unit of the processed motion-related datafor moving the user compartment.

In some embodiments, the motion-related data comprising data captured bya sensor on a controlling component of the first source-motion objectrepresenting a motion event associated with the controlling component.

In some embodiments, the controlling component is at least one of asteering wheel, accelerator pedal, brake pedal, and a joystick.

In some embodiments, the one or more processors are further adapted fortransmitting one or more instructions to the server for controlling thefirst source-motion object. According to one aspect of this disclosure,there is provided a system for controlling a target-motion device basedon motion of a first source-motion object. The system comprises: thefirst source-motion object having one or more sensors; the target-motiondevice; and one or more servers coupled to the first source-motionobject and the target-motion device via a network. The firstsource-motion object is adapted for: capturing motion-related data ofthe first source-motion object using the one or more sensors thereof,the motion-related data representing the motion of the firstsource-motion object, processing the motion-related data by convertingcaptured motion-related data from a first format to a second format, andtransmitting the processed motion-related data to a server. The serveris adapted for forwarding the processed motion-related data to thetarget-motion device. The target-motion device is adapted for moving atleast a portion thereof based on at least the processed motion-relateddata.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings in which likereferences indicate similar elements.

FIGS. 1A to 1C are schematic diagrams showing the structure of amotion-mapping system according to one embodiment of this disclosure,wherein FIG. 1A shows that the system comprises a plurality oftarget-motion devices receiving motion events from a plurality ofsource-motion objects for mapping the motions of source-motion objectson the target-motion devices, wherein FIG. 1B shows functions of asource-motion object thereof, and wherein FIG. 1C shows functions of atarget-motion object thereof;

FIGS. 2A and 2B show an example of the system shown in FIG. 1 wherein atarget-motion device changes source-motion objects;

FIG. 3 is a schematic diagram of a source-motion object of the systemshown in FIG. 1 , according to one embodiment of this disclosure;

FIG. 4 is a schematic diagram of a target-motion device of the systemshown in FIG. 1 , according to one embodiment of this disclosure;

FIG. 5 is a flowchart showing a process executed by the system shown inFIG. 1 for capturing and processing motion events, according to oneembodiment of this disclosure;

FIG. 6 is a flowchart showing a process for capturing and processingmotion events, according to another embodiment of this disclosure; and

FIG. 7 is a schematic diagram of one example of a data processingsubsystem used in the system, according to one embodiment of thisdisclosure.

DETAILED DESCRIPTION

Embodiments disclosed herein relate to systems and methods for mappingmotion-related parameters of one or more source-motion objects in motionevents for replaying the motion events thereof on one or more targetmotion devices located remote from the one or more source-motionobjects.

In some embodiments, the source-motion object may be a source-motiondevice such as a vehicle movable on the ground (e.g., a race car, aregular car, a truck, a van, a tractor, or the like), on or in water(e.g., a boat, a ship, a submergible vessel, or the like, movable on orin sea, lake, river, pond, and/or the like), in the air (e.g., anaircraft, a drone, or the like), or in the space (e.g., a spaceship).

In some other embodiments, the source-motion object may be an animal orlivestock (such as a horse, a cow, a whale, or the like), a human (suchas an athlete, a skier, a walker, a kayaker, a runner, or the like), orthe like, moving at a remote location.

In various embodiments, the source-motion object (e.g., the vehicle,animal or livestock, human, or the like) may comprise, attach, equipwith, or otherwise couple to, a plurality of sensors for collectingmotion-related parameters thereof.

A motion event of the source-motion object is an event representing themotion of the source-motion object at a time instant. For example, amotion event may be a vector of acceleration such as a linearacceleration resulting from an engine or thrust that pushes thesource-motion object forward, a breaking motion resulting from a breakor opposite thrust that pushes the source-motion object in an oppositedirection, an external force caused by, e.g., a bump, crash, and/or thelike, that changes the motion of the source-motion object, and/or othertypes of forces applied to the source-motion object.

A motion event may comprise data describing and/or characterizing thesource-motion object, such as motion-related parameters about thesource-motion object environment or operation (e.g., data of surroundingobjects, gyroscopic data, temperature, altimeter, battery, location,and/or the like) that relate to the motion of the source-motion object.Such motion-related parameters may be transmitted to the target-motiondevice in real-time.

For ease of description, the term “motion event” may also refer to themotion-related parameters, depending on the context.

The target-motion device may be a device such as a simulator suitablefor replaying the motion of the source-motion object and may comprise auser compartment (e.g., a seat for a user to sit, a standing area forthe user to stand, a cockpit, and/or the like) coupled to a set ofaction components such as one or more actuators, speakers, and/ordisplays. A control circuitry such as a processor controls the actioncomponents for replaying or simulating the motion events of asource-motion object. The target-motion device is adapted to receivemotion-related parameters of a source-motion object and use the actioncomponents for mapping the received motion-related parameters of thesource-motion object for replaying the motion thereof. For example, insome embodiments, the target-motion device is adapted to receivemotion-related parameters of a source-motion object and use the actioncomponents for performing one or more physical motion corresponding tothe motion events of the source-motion object.

In some embodiments, the target-motion device is adapted to receivemotion-related parameters of a source-motion object and use the actioncomponents for simulating the motion events of the source-motion object.Therefore, a user of the target-motion device may gain same or similarexperience of motion with the source-motion object as if the user is inthe source-motion object. In these embodiments, the source-motion objectmay be controlled by a drive therein or may be automatically orautonomously controlled by a controller. The user of the target-motiondevice may not have control of the source-motion object.

In some other embodiments, the source-motion object is a remotelycontrollable motion device. The target-motion device is adapted toreceive motion-related parameters of a source-motion object and use theaction components for replaying the motion events of the source-motionobject. The target-motion device may also provide a set of controlcomponents such as a steering wheel, a break, a gas pedal, and/or thelike with sensors thereon to detect the action or driving effort of theuser of the target-motion device and sends instructions to thesource-motion object based on the detected user action for remotelycontrol the target-motion device so as to provide the user of thetarget-motion device the driving experience as if the user is in thetarget-motion device.

In the following description, numerous specific details are set forth toprovide thorough explanation of embodiments of the present invention. Itwill be apparent, however, to one skilled in the art, that embodimentsof the present invention may be practiced without these specificdetails. In other instances, well-known components, structures, andtechniques have not been shown in detail in order not to obscure theunderstanding of this description.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment can be included in at least oneembodiment of the invention. The appearances of the phrase “in oneembodiment” or “in some embodiments” in various places in thespecification do not necessarily all refer to the same embodiment(s).

In the following description and claims, the terms “coupled” and“connected,” along with their derivatives, may be used. It should beunderstood that these terms are not intended as synonyms for each other.The term “coupled” is used to indicate that two or more elements whichmay or may not be in direct physical or electrical contact with eachother, co-operate or interact with each other. The term “connected” isused to indicate the establishment of communication between two or moreelements coupled with each other.

The processes depicted in the figures that follow, are performed byprocessing logic that comprises hardware (e.g., circuitry, dedicatedlogic, and/or the like), software (such as that run or executed on ageneral-purpose computer system or a dedicated machine), or acombination of both. Although the processes are described below in termsof some sequential operations, it should be appreciated that some of theoperations described may be performed in different order. Moreover, someoperations may be performed in parallel rather than sequentially.

The terms “server,” “client,” and “device” are intended to refergenerally to data processing systems rather than specifically to aparticular form factor for the server, client, and/or device.

According to one aspect of this disclosure, a method and system forcapturing and transmitting motion-related data from a source-motionobject to a target-motion device is described. In one embodiment, a setof source-motion objects are adapted to capture motion events that arepublished and subscribed by a set of target-motion devices. In thisembodiment, a source-motion object is a type of vehicle comprising oneor more sensors such as one or more gyroscopes, accelerometers, inertialmeasurement units (IMUs), thermometers, barometers, altimeters, indoorand/or outdoor positioning devices, e.g., Global Positioning System(GPS) devices, odometers, battery monitors, and/or the like forrecording the motion of the source-motion object, where the motion ofsource-motion object is represented by a stream of motion events. Theone or more sensors may also comprise one or more imaging devices (e.g.,cameras) and/or microphones for recording audio/video (A/V) clipsrelated to the motion of the source-motion object.

In one embodiment, the source-motion object transforms the motion events(or more specifically the motion-related parameters of the motionevents) into a format that can be published by a broker such as a servermaintaining one or more data channels with each data channel being usedby a respective source-motion object for publication. A target-motiondevice may subscribe to different topics of a particular channel in thebroker.

In this embodiment, each source-motion object publishes the transformedmotion events on a respective channel of the broker. The broker receivesthe transformed motion events and sends each of the transformed motionevents to a respective target-motion device that subscribes to themotion events of the source-motion object (or equivalently, thecorresponding channel of the broker).

In one embodiment, the target-motion device is a device that may replaythe motion of the source-motion object. In this embodiment, thetarget-motion device may comprise a user compartment coupled to a set ofaction components such as one or more actuators, speakers/headphones,and/or video monitors or displays. The target-motion device may alsocomprise a control circuitry such as a processor for receiving motionevents of the source-motion object, processing the received motionevents, and controls the action components based on the processed motionevents for simulating the motion events of the source-motion object. Theaction components such as the actuators then causes one or more physicalmotions of the target-motion device, e.g., to move the user compartmentbased on each of the processed motion events. The target-motion devicealso use the display and speakers/headphones to replay the A/V clipsobtained from the source-motion object. In one embodiment, thetarget-motion device synchronizes the A/V clips with the received motionevents.

For example and in one embodiment, a source-motion object may be a racecar speeding along a raceway, turning, breaking, getting bumped by otherrace cars, and experiencing road vibrations or other bumps along theway. The race car may comprise a set of sensors for recording themotions (or more specifically, the motion-related data) thereof andcreate a stream of motion events. The race car may further transformeach of the motion events into a stream of transformed motion events forpublishing on a channel of the broker.

In this example, the target-motion device may comprise a user seatcoupled to one or more processors and a set of actuators (e.g., arace-car cockpit simulator or a seat at a race track). The target-motiondevice may further comprise a set of video monitors and/or speakers orheadphones for replaying the A/V clips obtained from the source-motionobject.

The target-motion device may subscribe to the motion events andassociated A/V clips of the race car, where the target-motion deviceprocesses the motion events to move the user compartment and presentsthe synchronized A/V clips. Thus, a user sitting in the user compartmentof the target-motion device can experience of motion of the race carincluding the “road feel” and the synchronized audio and/or videothereof.

In another example and embodiment, the source-motion object may beoff-road vehicle or construction vehicle with the sensors mountedthereon. The source-motion object transmits the motion events to asimulator at a remote location in which an operator may remotely controlthe vehicle while sensing the angle and motion of the vehicle (e.g., toget a sense for whether the vehicle is at risk of tipping over and/orother types of a motion feel) as if the operator is in the source-motionobject.

In a further example, additional sensors may be used on a source-motionobject (e.g., a race car, airplane, or another type of vehicles) fordetecting and transmitting movement of the vehicle's steering wheeland/or pedals (or other types of controlling components) to a remotetarget-motion device, which would then move a simulated steering wheel,and/or pedals to reflect the movement of such items in the source-motionobject.

In a further example, the source-motion object may be a remotecontrolled vehicle (e.g., a car, a truck, a drone, a boat (e.g., asea-based boat, a lake-based boat, a river-based boat, or the like), oranother type of remote controlled vehicle), where an operator may sit orotherwise stay in the target-motion device and feel the motion of theremotely controlled vehicle.

In one embodiment, the system may be deployed in a family entertainmentcenter (e.g., a theme park, a fun park, an arcade, a race track, and/orthe like) for entertaining guests, In another embodiment, the system maybe used for other tasks such as remote inspection of rural, remote,and/or hazardous environments (e.g., well pads, pipelines, and/or thelike), search and rescue (wherein the target-motion device may be usedas a base station for sensors and other assets (e.g., drones)), deliveryof suitable items or goods (e.g., emergency gear, medicines, packages,etc.), and/or the like.

For example, in one embodiment, the remote control of large assets in ahazardous area may be remotely controlling of a bulldozer or other largeequipment in a hazardous or remote mine site, hauling trucks/trailers ina defined operational site or area, boats after natural disaster wherehuman operators are evacuated, large drones for delivery ofgoods/services where roads are impassable, visual inspections ormonitoring of flare stacks, power plants, and/or transmission lines.

In another embodiment, the target-motion device may be used forcompetitive e-Racing leagues, wherein gamers use the target-motiondevices to control source-motion objects for racing. In yet anotherembodiment, the system may be used in agriculture areas.

In one embodiment, the combination of motion events and audio/videoclips is part of a remote operation or “ride along” experience. Althoughremotely operated assets are known in the art, they usually lack safetyand operational awareness offered by motion or haptic feedback.

FIG. 1A is a schematic diagram showing a motion-mapping system 100 inone embodiment. The system 100 comprises one or more target-motiondevices 104A to 104N (collectively identified using reference numeral104) in communication with one or more source-motion objects 106A to106M (collectively identified using reference numeral 106) via a server101 having an event broker 102 and an audio/video (AAT) multicastsubsystem 112 through a network (not shown). The server 101 creates andmaintains one or more channels for the one or more source-motion objects106A to 106M. As will be described in more detailed below, eachsource-motion objects 106 sends its data stream 108 to the respectivechannel of the server 101. The server 101 may process the data streams108 for generating output data streams 110. A target-motion device 104may subscribe to a channel of the broker 102 or different topics of thechannel for receiving the data stream 110 thereof for replay.

Each source-motion object 106 comprises one or more sensors coupled orattached to various locations thereof such as the dashboard, floor pan,or the like for detecting various motions of the source-motion object106, recording motion-related parameters thereof, and creating a streamof motion events comprising the recorded motion-related parameters (seefunction 142 of FIG. 1B). Each source-motion object 106 may also recordA/V feed or clips corresponding to the stream of motion events.

Each source-motion object 106 then sends the stream of motion events andthe A/V clips to the respective channel of the server 101 (i.e., thestream of motion events and the A/V clips of each source-motion object106 is associated with the respective channel in the server 101 whereinthe stream of motion events is published to the event broker 102 and theA/V clips are sent to the A/V multicast subsystem 112 thereof. In thisembodiment, each source-motion object 106 transforms its recorded motionevents into a format suitable for publishing to the event broker 102.

Each target-motion device 104 may subscribe to a channel of the server101 for receiving the corresponding stream of motion events and the A/Vclips recorded by the source-motion object associated with the channel(see function 146 of FIG. 1C) and replaying the received stream ofmotion events and the A/V clips in some fashion (see function 148 ofFIG. 1C), such that the user sitting in or otherwise coupled to thetarget-motion device 104A-N may receive tactile feedback on the motionfrom the source-motion object 106, and experience the feeling of whatit's like to be in that race car.

The stream of transform motion events may be generated and replayed inreal time or near real time, in a delayed time, on-demand, and/or from astored object (e.g., a stored file).

Herein, the terms “real time” and “near real time” refer to the scenariowherein no delay is intentionally introduced between the generation ofthe motion events at the source-motion object and the replay at thetarget-motion device and the delay therebetween is generally caused dueto the limited speed of processing and communication of the motionevents which depends on the speed and ability of the source-motionobject 106 to generate and transmit the motion events, the networksystem to communicate the motion events, and the target-motion device104 to process the received motion events. Such delay usually isnegligible. For example, in one embodiment, in a real-time or nearreal-time scenario, the delay between the generation of the motionevents at the source-motion object 106 and the replay thereof at thetarget-motion device 104 is on the order of tens to hundreds ofmilliseconds.

For example and in one embodiment, the source-motion object 106 may be arace car that is speeding along the raceway, turning, breaking, gettingbumped by other race cars, and feeling road vibrations or other bumpsalong the way. The race car includes a set of sensors that records thesedifferent kinds of motions. The race car further transforms each of themotion events into a stream of transformed motion events that may bepublished on a channel in the event broker 102. The event broker 102provides this stream of transformed motion events to various targetsource devices 104A-N that subscribe to this stream of transformedmotion events.

As described above and in one embodiment, each of the source-motionobjects 106 transforms the motion events thereof before transmittingthese motion events to the event broker 102. In this embodiment, asource-motion object 106 converts a motion event in a native formatoutput by the sensor(s) into a format suitable for publishing to thebroker 102 (see function 144 of FIG. 1B). In one embodiment, thesource-motion object 106 transforms a motion event in a binary formatoutput from the sensor(s) thereof to a text-based format for publishingto the broker 102. For example and in one embodiment, the source-motionobjects 106 comprises a BNO055 sensor offered by Bosch Sensortec GmbH ofReutlingen, GERMANY, which is a 9-axis Absolute Orientation Sensorhaving a triaxial 14-bit accelerometer, a triaxial 16-bit gyroscope, anda triaxial geomagnetic sensor, and outputs motion events formatted in aproprietary binary format. In this embodiment, the BNO055 sensorcomprises a library to receive the motion events and digitize thedetected analog motion data of a source-motion object 106 into adigitized motion event. In other embodiments, the source-motion object106 comprises a different type of sensor, multiple sensors, and/ormultiple types of sensors.

In any of these embodiments, the source-motion object 106 receives eachmotion event and converts the motion event into a text-based ortext-formatted tuple. For example, the X, Y, and Z motions of eachmotion event are converted into the text-based tuple for publishing tothe event broker 102. In one embodiment, the text-based tuple comprisesa timestamp. In one embodiment, the text-based tuple has the format of(timestamp, X motion, Y motion, Z motion) with each parameter thereoftaking integer values.

As another example and in one embodiment, if a source-motion object 106is moved in response to an external force (e.g., a bump by anothervehicle, a crash, bump from the road, etc.), the source-motion object106 records the motion caused by the external force and transforms thismotion into a text-based tuple. The source-motion object 106 sends thistext-based tuple to the event broker 102.

For example and in one embodiment, Table 1 below shows an example of theX, Y, Z values.

TABLE 1 Example of X, Y, Z motion values. time X_value Y_value Z_valueStarted: Nov 09 2018 13:03:00:809 0 0 0 0 0.05 −0.35026 0.10676 −0.120660.05 −0.50313 −0.0003 −0.06899 0.05 −0.54627 −0.18193 −0.0365 0.05−0.45679 −0.28366 0.02368 0.05 −0.31244 −0.19844 0.07801 0.0501 −0.19314−0.04664 0.08813 0.1122 −0.09673 0.09558 0.07695 0.1122 −0.02855 0.198370.06949 0.1122 −0.00778 0.25803 0.07322 0.1122 −0.04613 0.2543 0.076410.1122 −0.13188 0.18133 0.07428 0.1122 −0.23362 0.09664 0.07002 0.1796−0.30872 0.05989 0.04818 0.1797 −0.34014 0.05403 0.03008 0.1797 −0.320970.08279 0.01356 0.1797 −0.24054 0.10942 0.01143

In Table 1, the source-motion object 106 processes these values intotext-based tuples of motion events and send them to the broker 102. In afurther embodiment, the source-motion object may generate other types ofmotion events. For example, the source-motion object 106 may generatemotion events for heading, roll, pitch, system calibration, accelerationcalibration, and magnetic calibration. Below is an example for atext-based tuple for this type of information. In one embodiment, eachof the tuples include a timestamp:

Heading=0.00 Roll=0.00 Pitch=0.00 Sys_cal=0 Gyro_cal=0 Accel_cal=0Mag_cal=0

Heading=0.06 Roll=−0.88 Pitch=−1.12 Sys_cal=0 Gyro_cal=3 Accel_cal=0Mag_cal=0

Heading=0.06 Roll=−0.88 Pitch=−1.12 Sys_cal=0 Gyro_cal=3 Accel_cal=0Mag_cal=0

Heading=1.19 Roll=31.44 Pitch=−2.69 Sys_cal=0 Gyro_cal=3 Accel_cal=0Mag_cal=0

Heading=1.44 Roll=30.31 Pitch=−4.88 Sys_cal=0 Gyro_cal=3 Accel_cal=0Mag_cal=0

Heading=1.31 Roll=29.50 Pitch=−3.19 Sys_cal=0 Gyro_cal=3 Accel_cal=1Mag_cal=0

Heading=1.56 Roll=29.50 Pitch=−2.88 Sys_cal=0 Gyro_cal=3 Accel_cal=1Mag_cal=0

Heading=1.88 Roll=29.62 Pitch=−3.06 Sys_cal=0 Gyro_cal=3 Accel_cal=1Mag_cal=0

Heading=0.88 Roll=−17.75 Pitch=−5.00 Sys_cal=0 Gyro_cal=3 Accel_cal=1Mag_cal=0

In one embodiment, each source-motion object 106 continuously transformsthe motion events recorded by the sensor thereon and publishes thesetransformed motion events (e.g., the text-based tuples) to therespective channel in the event broker 102. In one embodiment, the dataof the transformed motion events (e.g., the text-based tuples) may beorganized in a hierarchical structure for efficiency of subscription forthe target-motion devices. For example, a channel in the event broker102 may be “mycar” and may comprise a plurality of topics organized in atree structure such as “telemetry,” “telemetry/accel,”telemetry/accel/X,” telemetry/accel/Y,” telemetry/accel/Z″, and/or thelike. A target-motion device 104A-N can subscribe to different topics ofa particular channel of the broker 102.

The event broker 102 receives the different streams of motion eventsfrom source-motion objects 106A to 106M, where each of the motion-eventstreams are published on different channels maintained by the eventbroker 102. In one embodiment, the event broker 102 is a MessageQueueing Telemetry Transport (MQTT) broker, where a MQTT broker is aserver that communicates with clients (e.g., target-motion devices 104Ato 104N and source-motion object 106A to 106M) using the MQTT protocol.In this embodiment, the MQTT broker organizes the motion events as ahierarchy of topics, where these topics can be one or more subscriptionchannels (e.g., “mycar/telemetry/accel/X”, “mycar/telemetry/accel/Y”,“mycar/telemetry/accel/Z”, etc.). Such a hierarchic structure of topicsfacilitates the system to efficiently organize the motion events andfacilitates the user to efficiently look for and search for the motionevents of a desired topic or category.

When a source-motion object 106 has a motion event to publish, thissource-motion object 106 sends a control message including thetext-based tuple to the MQTT broker 102, where the MQTT broker 102distributes the motion event to one or more target-motion devices thatsubscribe to the channel corresponding to this source-motion object 106.In one embodiment, if there are no target-motion devices 104 thatsubscribe to this channel, then the motion event is dropped. In analternative embodiment, the event broker 102 stores the received motionevent for playback in the future. In a further embodiment, the eventbroker 102 may be a different type of event broker.

In an alternative embodiment, each or the source-motion objects 106A to106M may transmit an A/V feed along with the motion events. In oneembodiment, the A/V feed may be transmitted via the A/V multicastsubsystem 112 of the server 101 to one or more target-motion devices 104that subscribe the corresponding channel (e.g., the source-motion object104 transmits the A/V feed to the A/V multicast subsystem 112, where thetarget-motion device 106 joins the A/V feed). The A/V multicastsubsystem 112 may be any suitable system that controls a multicasting ofthe A/V feed for any one of the source-motion objects 106A to 106M.

In this embodiment, the target-motion device 104 synchronizes the motionevents received from the event broker 102 with the A/V feed receivedfrom the corresponding source-motion object 106. For example and in oneembodiment, the target-motion device 104N subscribes to the motionevents of the source-motion object 106M (e.g., the target-motion deviceis a seat including actuators that can replay the motion events). Thetarget-motion device 104N sends a connect message for the subscriptionchannel corresponding to the motion feed of the source-motion object106M. The event broker 102 sends the motion events from thesource-motion object 106M to the target-motion device 104N. In addition,the target-motion device 104N sends a join message for the A/Vcorresponding to the source-motion object 106M to the A/V multicastsystem 112. The target-motion device 104N synchronizes the A/V feed withthe received motion events, so as to synchronously replay the motionevents and the A/V feed.

In one embodiment, the target-motion device 106 is a device that replaysthe motion events for a user. In this embodiment, the target-motiondevice may include one or more processors coupled to a set of movableactuators for replaying a motion event for a user in or near a usercompartment (e.g., a seat). In one embodiment, the one or moreprocessors process each received motion event and send the processedmotioned event to the set of actuators via an actuator interface. Theset of actuators receive the processed motion event and move the usercompartment based on the processed motion event. For example and in oneembodiment, the target-motion device 104 may replay a series of motionevents that represent a motion of the corresponding source-motion object106 (e.g., normal motion, acceleration, deceleration, a bump, crash,change in altitude, and/or the like).

In a further embodiment, the target-motion device 106 may process eachof the received motion events. In this embodiment, the target-motiondevice 104 may scale one or more motion-related parameters of each ofthe motion events based on a setting. For example and in one embodiment,the target-motion device 104 may reduce or enhance the magnitude of themotion events. The scaling may be a constant amount (e.g., increasing ordecreasing by a certain percentage, such as 10%), a variable amount(greater scaling for smaller or larger changes in motion), a threshold(scaling by a certain amount when greater or less than a threshold),and/or the like. In one embodiment, the scaling is based on a userprofile. For example and in one embodiment, scaling for a small childmay be greater than scaling for an adult. Alternatively, there may be auniversal scaling in addition to any customized scaling. In thisexample, there may be a scaling to a motion event representing a crashinto a barrier at excessive force.

In another embodiment, the target-motion device 104 may re-orient themotion event or change the coordinate system thereof. In thisembodiment, the target-motion device 104 may change the X, Y, and/orZ-axis of the motion event so the processed motion event corresponds tothe user compartment. For example and in embodiment, the sensors on therecording source-motion object may have a positive Z-axis pointingtowards the ground, whereas the target-motion device 104 may have apositive Z-axis pointing away from the ground. In this example, thetarget-motion device 104 changes the Z-values of the received motionevents to adapt to its own Z-axis orientation. Alternatively, thetarget-motion device may swap pairs of the motion-event values based ona reorientation between the source and target-motion devices.

Those skilled in the art will appreciate that the target-motion device104 does not need to accurately reproduce the motion event of thesource-motion object 106. In various embodiments, the target-motiondevice 104 may modify the motion-related parameters of the source-motionobject 106 to adapt to the characteristics of the target-motion device104. For example, in some embodiments, the target-motion device 104 maynot be movable from one location to another (however, it may be movablein a vibrating manner along one or more predefined directions) and maynot reproduce any location-movement of the source-motion object 106. Inthese embodiments, the target-motion device 104 may simulateacceleration/deceleration by applying a pressure to the user thereofalong a suitable direction (e.g., applying a pressure to the back orchest of the user for simulating acceleration or deceleration,respectively).

In some embodiments, the target-motion device 104 may be movable fromone location to another. However, the movement of the target-motiondevice 104 may be a scaled-down or reduced version of that of thesource-motion object 106.

A target-motion device 104 may change its subscription from a firstchannel to a second channel. FIGS. 2A and 2B show an example. As shownin FIG. 2A, the target-motion device 104N subscribes (represented usingthick arrows) the channel associated with the source-motion object 106M(e.g., a race car). Thus, the source-motion object 106M sends the datastream 108 of its motion events to the server 101 with the motion eventssent to the event broker 102 and A/V feed or clips are sent to the A/Vmulticast subsystem 112. The event broker 102 and/or the A/V multicastsubsystem 112 and the A/V multicast subsystem 112 may process the motionevents and A/V feed or clips, respectively for generating an output datastream 110M which is then sent to the target-motion device 104N forreplay.

As shown in FIG. 2B, the target-motion device 104N changes its channelsubscription from the channel of the source-motion object 106M to thatof the source-motion object 106C (e.g., another race car in the samerace) by sending to the event broker 102 a disconnect message for thechannel of the source-motion object 106N and a connect message for thechannel of the source-motion object. These messages indicate that thetarget-motion device 106N is unsubscribing to the channel (orcorresponding topics thereof) of the source-motion object 104M andsubscribing to the channel (or corresponding topics thereof) of thesource-motion object 106C.

In addition, the target-motion device 106N sends a leave message for theA/V feed of the source-motion object 106M and ajoin message for the A/Vfeed of the source-motion object 106C. These messages indicate that thetarget-motion device 106N is leaving the A/V feed of the source-motionobject 104N and joining the A/V feed of the source-motion object 106C.

Alternatively, the target-motion device 104N may change subscriptionchannels from one type of source-motion object (e.g. a race car) toanother type of source-motion object (e.g., a race truck at anotherevent, an airborne vehicle, a seaborne vehicle, and/or the like). Inthis embodiment, after changing the subscription channel, thetarget-motion device 104N begins receiving the motion events and/or A/Vfeeds from the newly subscribed source-motion object 106C. Thetarget-motion device 104M begins to replay the motion events of thesource-motion object 106C.

FIG. 3 is a block diagram of one embodiment of the source-motion object106, or more precisely, a sensor subsystem integrated with, coupled to,attached to, or otherwise comprised in the source-motion object 106 forcollecting motion-related parameters. For ease of description, thesensor subsystem shown in FIG. 3 is simply denoted as the source-motionobject 106. In FIG. 3 , the source-motion object 106 comprises asource-motion capture component 214 and other components 212. Thesource-motion capture component 214 comprises a storage 210, one or moreprocessors 202, one or more sensors 204, an A/V subsystem 206, and acommunications component 208. The one or more processors 202 may be oneor more processor units (e.g., central processing unit, processing core,and/or the like) suitable for processing and transforming the motionevents generated by the one or more sensors 204.

For example, the one or more processors may be one or more single-coreor multiple-core computing processors such as INTEL® microprocessors(INTEL is a registered trademark of Intel Corp., Santa Clara, Calif.,USA), AMD® microprocessors (AMD is a registered trademark of AdvancedMicro Devices Inc., Sunnyvale, Calif., USA), ARM® microprocessors (ARMis a registered trademark of Arm Ltd., Cambridge, UK) manufactured by avariety of manufactures such as Qualcomm of San Diego, Calif., USA,under the ARM® architecture, or the like.

The one or more processors may also be a real-time processor, aprogrammable logic controller (PLC), a microcontroller unit (MCU), aμ-controller (UC), a specialized/customized process/controller usinge.g., field-programmable gate array (FPGA) or application-specificintegrated circuit (ASIC) technologies, and/or the like.

The one or more sensors 204 may comprise one or more sensors suitablefor to detect and record environmental data. In this embodiment, thesensors may comprise sensors to record degrees of freedom (DOF) ofmotion, acceleration, deceleration, temperature, altimeter, battery,location, and/or any other type of data describing the environmentsand/or operation of the source-motion object 106. For example, the oneor more sensors 204 may comprise an above-described BNO055 sensor.

The audio/video subsystem 206, in one embodiment, is used to recordaudio and/or video clips corresponding to the source-motion object 106.In one embodiment, the audio/video subsystem 206 may comprise one ormore imaging devices such as cameras, one or more microphones, and/oranother type of audio/video recording devices, a processor, a storage,and/or other suitable components for facilitating capturing audio and/orvideo of the source-motion object 106 and digitizing the captured audioand/or video for transmission to the A/V multicast subsystem 112. Thevideo may comprise video clips captured from inside the source-motionobject 106 and/or video clips captured from a perspective associatedwith the source-motion object 106. The captured audio may be audio of anoperator of the source-motion object 106 and/or may be audio related tothe operation of the source-motion object 106 (e.g., engine noise, roadand/or environmental noise, and/or other audio).

The storage 210 may be any type of storage used to store data generatedby the source-motion object 106. The storage 210 may comprise aplurality of memory units accessible by the one or more processors 202and for reading and/or storing instructions for the one or moreprocessors 202 to execute, and for reading and/or storing data,including input data and data generated by the one or more processors202. The storage 210 may be volatile and/or non-volatile, non-removableor removable memory such as random-access memory (RAM), ready-onlymemory (ROM), electrically erasable programmable read-only memory(EEPROM), solid-state memory, hard disks, CD, DVD, flash memory, or thelike. In use, the storage 210 is generally divided to a plurality ofportions for different use purposes. For example, a portion of thestorage 210 (denoted as storage memory herein) may be used for long-termdata storing, for example, for storing files or databases. Anotherportion of the storage 210 may be used as the system memory for storingdata during processing (denoted as working memory herein).

Although not shown in FIG. 3 , the source-motion capture component 214may optionally include a battery such as a lithium polymer (LiPo)battery as a power source therefor, a voltage controller, on/offtrigger, and/or an enclosure for the source-motion capture component214.

The communications component 208 is a component for communicating datawith other devices via a suitable wireless or wired communicationstechnology such as the long term evolution (LTE) wireless technology,3G, 4G and/or 5G wireless mobile telecommunications technologies, WI-FI®(WI-FI is a registered trademark of Wi-Fi Alliance, Austin, Tex., USA),WiMAX® (is a registered trademark of WiMAX Forum, Clackamas Oreg., USA),BLUETOOTH® (BLUETOOTH is a registered trademark of Bluetooth Sig Inc.,Kirkland, Wash., USA), ZIGBEE® (ZIGBEE is a registered trademark ofZigBee Alliance Corp., San Ramon, Calif., USA), Ethernet, and/or thelike. In some embodiments, parallel ports, serial ports, USBconnections, optical connections, or the like may also be used forconnecting other computing devices or networks although they are usuallyconsidered as input/output interfaces for connecting input/outputdevices.

As shown in FIG. 3 , the source-motion object 106 may also comprise oneor more other components 212. In one embodiment, the other components212 may comprise components for driving or propelling the source-motionobject 106 (e.g., propulsion components, such as an engine, wheels,wing, propeller, and/or another type of propulsion component),components for housing the source-motion object 106, and/or othersuitable types of components. Examples of a source-motion object 106 maybe, but not limited to, a vehicle (e.g., a race car, an emergencyvehicle, an airborne vehicle, a seaborne vehicle, an outer-spacevehicle, and/or the like), a training device, and/or the like.

FIG. 4 is a block diagram of the target-motion device 104, according toone embodiment of this disclosure. In FIG. 4 , the target-motion device104 comprises a target-motion processing component 312 and atarget-motion subsystem 314, where the target-motion processingcomponent 312 is the component for processing the received motion eventsand/or audio/video feed, and the target-motion subsystem 314 is asubsystem comprising a component that responds to the motion events.

In one embodiment, the target-motion processing component 312 comprisesone or more processors 302, an audio/video subsystem 306, a storage 312,and a communications component 314. In this embodiment, thetarget-motion subsystem 314 comprises a motion system interface 304, auser compartment 308, and actuators 310A to 310D (collectivelyidentified using reference numeral 310). In one embodiment, the one ormore processors 302 can be one or more above-described processor unitsfor processing and transforming the motion events received by thetarget-motion device 104. The storage 312 that is any suitable type ofabove-described storage for storing data generated and/or received bythe target-motion device 104. The audio/video subsystem 306, in oneembodiment, is used to present the received A/V feed of thecorresponding source-motion object 106. In this embodiment, theaudio/video subsystem 306 may comprise one or more displays or monitorsfor displaying the video data, one or more speakers or headphones forpresenting the audio data, and/or other components for processing andpresenting the A/V feed. The communications component 314 is a componentfor communicating data with other devices using any suitable wireless orwired communication technologies as described above.

The target-motion subsystem 314 comprises a motion system interface 304.In one embodiment, the motion system interface 304 is an interface tothe set of actuators 310. In this embodiment, the one or more processors302 may send processed motion events to the motion system interface 304,where the motion system interface 304 receives the processed motionevents, transforms each processed motion event into a set of commandsfor each of the actuators 310A to 310D, and sends the individualcommands thereto.

The actuators 310A to 310D receive the commands and act according to thereceived command thereby causing the overall motion of the usercompartment 308. In one embodiment, each of the actuators 310A to 310Dis a component of machine responsible for moving the user compartment308. While in the embodiment shown in FIG. 4 , the target-motionsubsystem 314 comprises four actuators 310A to 310D, in some alternateembodiments, the target-motion subsystem 314 may comprise more or lessactuators (e.g., 2 to 5 actuators). In one embodiment, the actuators310A to 310D may have a size of 1.5″ (i.e., 1.5 inches), 3″, 6″, orother suitable sizes. The user compartment 308 is a component foraccommodating a user. For example and in one embodiment, the usercompartment 308 may comprise one or more seats for user to sit and/orother components for user to use or operate. In one embodiment, the usercompartment 308 is the component for moving the user according to thereceived motion events in real-time, near real-time, at a delayed time,on demand, or based on stored motion events. The user compartment 308may also be used in theater style seating where the motion of each seatis synchronized with the audio/video feed in the theater. The system 100thus may be used to leverage in motion seats in a theater with a simplesoftware push. In one embodiment, flight chairs may be used as part of atarget-motion device 104, where each flight chair comprises a flightstick, throttle, and/or pedals for input to the remotely operatedsource-motion objects 106. In turn, the flight chair may move in respondto the motion of the remotely operated source-motion objects 106. In oneembodiment, the flight chair may be coupled to a set of actuators toreplay the motion events received by the target-motion device inreal-time.

In one embodiment, the target-motion device may synchronize the playbackof the A/V data with the replaying of the motion events. In thisembodiment, each frame of the A/V data and each motion event comprise atimestamp for synchronizing the A/V playback and the motion eventreplaying. For example and in one embodiment, the target-motion devicemay use ticks (e.g., idle time-periods) to add time-spaces between themotion events to align the motion events with the A/V data frames.

As described above, each source-motion object may capture and processmotion events that characterize the motion and/or operation thereof.FIG. 5 is a flowchart showing a process 400 for capturing and processingmotion events, according to one embodiment of this disclosure. As shown,the process 400 begins by receiving the signal to start the motion-eventcapture (step 402). In one embodiment, the signal to start themotion-event capture may be a signal automatically generated when thesource-motion object starts, a signal automatically generated when themotion-event capture mechanism of the source-motion object 106 isstarted, a signal automatically generated by the event broker 102, asignal generated when the user of the source-motion object 106 presses abutton, a signal generated when the user of the target-motion device 104presses a button, and/or the like. At step 404, the server 101 sets upor creates the publication channels on the broker 102. In oneembodiment, the server 101 sets up the publication channels based on aconfiguration for each source-motion object 106.

At step 406, the system 100 captures the motion events of thesource-motion object 106, an A/V feed associated therewith, and/or otherdata. In one embodiment, the system 100 captures the motion events usinga set of one or more sensors on the source-motion object 106 asdescribed in FIG. 1 above.

At step 408, the system 100 processes the motion events. As describedabove, the motion events may be processed by creating text-based tuples.At step 410, the processed motion events are sent to the publicationchannel of the event broker 102 in the server 101 corresponded to thesource-motion object 106. At step 412, the audio/visual data captured atthe source-motion object 106 is sent to the A/V multicast subsystem 112which then forward the audio/video data to one or more requestingtarget-motion devices.

At step 414, the system 100 determines if stop has been indicated. If nostop is indicated, the process 400 loops back to step 408. If a stop hasbeen indicated (e.g., vehicle has been turned off, a controllerindicated a stop, and/or the like), the system 100 stops sending themotion events and A/V data and the process 400 is terminated.

As described above, the target-motion device 104 may request motion dataand/or an associated A/V feed. FIG. 6 is a flowchart showing a process500 for capturing and processing motion events, according to oneembodiment of this disclosure. As shown, the process 500 begins byreceiving a user sign on and authenticating the user. After the userauthentication, the user is associated with the profile for thetarget-motion device 104 (step 502). For example and in one embodiment,the user profile may be used to set a scaling factor for thetarget-motion device 104 used by the user.

At step 504, the system 100 initializes the target-motion device 104. Atstep 506, the system 100 selects a source-motion object 106. In oneembodiment, the system 100 presents a range of available source-motionobjects 106 to a user of a target-motion device 104 and the user mayselect one of the available source-motion objects 106. At step 508, theevent broker 102 receives the motion events from the selectedsource-motion object 106 and assigns the received motion events to apublication channel associated with the selected source-motion object106. At step 510, the A/V multicast subsystem 112 receives the A/V datafrom the selected source-motion object 106 and assigns the received A/Vdata to the publication channel associated with the selectedsource-motion object 106.

At step 512, the event broker 100 processes the motion events. In oneembodiment, the event broker 100 processes the motion events by adding ascaling factor and/or reorienting the motion events as described above.The event broker 100 then sends the processed motion events to themotion interface of the target-motion device 104 (step 514).

In one embodiment, the motion interface of the target-motion device 104receives the processed motion events and causes the set of actuators 310to move which in turn move a user compartment 308. At step 516,target-motion device 104 presents the A/V data. In one embodiment, thetarget-motion device 104 may synchronize the playback of the A/V datawith the replaying of the motion events. In this embodiment, each frameof the A/V data and each motion event includes a timestamp that can beused to synchronize the A/V playback and the motion event replaying. Forexample and in one embodiment, the target-motion device 104 may useticks to add time-spaces between the motion events to align the motionevents with the A/V data frames.

At step 518, the system 100 determines if the target-motion device 104changes to a different source-motion object 106. In one embodiment, theuser may select a different source-motion object. For example and in oneembodiment, the target-motion device 104 selects a new source-motionobject in the same events as the previous source-motion object.Alternatively, the target-motion device 104 may change subscriptionchannels from one type of source-motion object (e.g., a race car) toanother type of source emotion device (e.g., a race truck at anotherevent, an airborne vehicle, a seaborne vehicle, and/or another type ofsource-motion object). If there is a change of the source-motion object106, the process 500 loops back to step 506. If there is not a change ofthe source-motion object 106, the system 100 determines if there is astop indicated. If there is not an indicated stop, the process 500 loopsback to step 508. If there is a stop, the system 100 sends a stopindication to the event broker 102 and the A/V multicast subsystem 112,and the process 500 is terminated.

FIG. 7 shows one example of a data processing subsystem 600 which may beused in the system 100 according to one embodiment of this disclosure.For example, the subsystem 600 may be implemented as a source-motionobject or target-motion device that includes the subsystem 600, such asthe source-motion object 106 shown in FIG. 3 or the target-motion device104 shown in FIG. 4 . Note that while FIG. 7 illustrates variouscomponents of a data processing subsystem 600, it is not intended torepresent any particular architecture or manner of interconnecting thecomponents as such details are not germane to the present disclosure. Itwill also be appreciated that network computers and other dataprocessing systems or other consumer electronic devices, which havefewer components or perhaps more components, may also be used as thedata processing subsystem 600.

As shown in FIG. 7 , the data processing subsystem 600 is the form of acomputer system and comprises one or more buses 603 coupled to one ormore microprocessors 605, a ROM 607, a volatile RAM 609, and anon-volatile memory 611, a display controller 615, and one or moreinput/output (I/O) controllers 617.

The microprocessor 605 may include one or more CPU(s), GPU(s), aspecialized processor, and/or a combination thereof. The microprocessor605 may retrieve the instructions from the memories 607, 609, and 611and execute the instructions to perform operations as described above.The display controller 615 is coupled to a display device. The one ormore I/O controllers 617 are coupled to one or more to peripheralinput/output devices 619 such as computer mice, keyboards, modems,network interfaces, printers, and/or the like

The volatile RAM 609 is typically implemented as dynamic RAM (DRAM)which requires power continually in order to refresh or maintain thedata in the memory.

The nonvolatile memory 611 may be one or more mass storages such as ahard drive or a magnetic optical drive, an optical drive, a DVD RAM, aflash memory, or other suitable types of memory subsystems whichmaintain data (e.g. a large amount of data) even after power is removedfrom the data processing subsystem 600. Typically, the nonvolatilememory 611 may be a random access memory although this is not required.While FIG. 7 shows that the nonvolatile memory 611 is a local devicecoupled directly to the rest of the components in the data processingsubsystem 600, it will be appreciated that the system 100 may utilize anon-volatile memory which is remote from the data processing subsystem600, such as a network storage device which is coupled to the dataprocessing system 600 through a network interface such as a modem, anEthernet interface, or a wireless network. The bus 603 may include oneor more buses connected to each other through various bridges,controllers, and/or adapters as is known in the art.

In above embodiments, the target-motion device 104 comprises one or moreactuators for moving the target-motion device. In some alternativeembodiments, the target-motion device 104 may also comprise one or moreactuators for applying pressures to the user thereof based on theprocessed motion-related data obtained from the source-motion object106.

In some of above embodiments, the target-motion device 104 may changethe subscription from a currently subscribed source-motion object to adifferent source-motion object. In one embodiment, the source-motionobject 106 may be operated by a driver therein, by a controller (i.e.,automatically or autonomously driving), or by a remote user other thanthe user of the target-motion device 104. In this embodiment, the changeof the subscription of the source-motion object 106 may occur at anytime as the user of the target-motion device 104 desires.

In another embodiment, the currently subscribed source-motion object isa source-motion object remotely controlled by the user of thetarget-motion device 104. In this embodiment, the change of thesubscription of the source-motion object 106 may occur only when thecurrently subscribed source-motion object is in a static or parkingstatus.

In yet another embodiment, the currently subscribed source-motion objectis a source-motion object automatically or autonomously drivable by acontroller, and is currently remotely controlled by the user of thetarget-motion device 104. In this embodiment, the change of thesubscription of the source-motion object 106 may occur when thecontroller determines that the currently subscribed source-motion objectcan be safely switched to the automatic or autonomous driving model.

In some of above embodiments, the scaling of at least a portion of themotion-related data is conducted by the target-motion device 104. Insome embodiments, the scaling of at least a portion of themotion-related data may be conducted by the event broker 102 of theserver 101.

In some of above embodiments, when a target-motion device 104 requestsfor subscribing a first source-motion object, the event broker 102checks if the target-motion device 104 is connected to a channel of asecond source-motion object. If yes, the event broker 102 disconnectsthe target-motion device 104 from the channel of the secondsource-motion object and connects the target-motion device 104 to thechannel of the first source-motion object.

In some embodiments, when the target-motion device 104 checks if thetarget-motion device 104 is connected to a channel of a secondsource-motion object. If yes, the target-motion device 104 disconnectsitself from the channel of the second source-motion object and connectsitself to the channel of the first source-motion object.

Portions of what was described above may be implemented with logiccircuitry such as a dedicated logic circuit or with a microcontroller orother form of processing core that executes program code instructions.Thus, the processes disclosed above may be performed with program codesuch as machine-executable instructions that cause a machine to executethese instructions and perform certain functions. In this context, a“machine” may be a machine that converts intermediate form (or“abstract”) instructions into processor specific instructions (e.g., anabstract execution environment such as a “virtual machine” (e.g., a JavaVirtual Machine), an interpreter, a Common Language Runtime, ahigh-level language virtual machine, and/or the like), and/or electroniccircuitry disposed on a semiconductor chip (e.g., “logic circuitry”implemented with transistors) designed to execute instructions such as ageneral-purpose processor and/or a special-purpose processor. Theprocesses disclosed above may also be performed by (in the alternativeto a machine or in combination with a machine) electronic circuitrydesigned to perform the processes (or a portion thereof) without theexecution of program code.

The present disclosure also relates to an apparatus for performing theoperations described herein. This apparatus may be specially constructedfor the required purpose, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in acomputer-readable storage medium, such as but is not limited to, anytype of disk including floppy disks, optical disks, CD-ROMs,magnetic-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or opticalcards, or any type of media suitable for storing electronicinstructions, and each coupled to a computer system bus.

A machine-readable medium comprises any suitable mechanism for storingor transmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable medium may comprise ROM, RAM,magnetic disk storage media, optical storage media, flash memorydevices, and/or the like.

An article of manufacture may be used to store program code. An articleof manufacture that stores program code may be embodied as, but is notlimited to, one or more memories (e.g., one or more flash memories, RAMs(static, dynamic or other)), optical disks, CD-ROMs, DVD ROMs, EPROMs,EEPROMs, magnetic or optical cards, or other type of machine-readablemedia suitable for storing electronic instructions. Program code mayalso be downloaded from a remote computer (e.g., a server) to arequesting computer (e.g., a client) by way of data signals embodied ina propagation medium (e.g., via a communication link (e.g., a networkconnection)).

The preceding detailed descriptions are presented in terms of algorithmsand symbolic representations of operations on data bits within acomputer memory. These algorithmic descriptions and representations arethe tools used by those skilled in the data-processing arts to mosteffectively convey the substance of their work to others skilled in theart. An algorithm is herein, and generally, conceived to be aself-consistent sequence of operations leading to a desired result. Theoperations are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be kept in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as “receiving,” “capturing,” “processing,” “transmitting,”“selecting,” “assigning,” “distributing,” “sending,” or the like, referto the action and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

The processes and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the operations described. The required structurefor a variety of these systems will be evident from the descriptionbelow. In addition, the present invention is not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the invention as described herein.

Although embodiments have been described above with reference to theaccompanying drawings, those of skill in the art will appreciate thatvariations and modifications may be made without departing from thescope thereof as defined by the appended claims.

What is claimed is:
 1. A computerized method for controlling atarget-motion device based on motion of a first source-motion object,the method comprising: capturing, using one or more sensors, a stream ofmotion events of the first source-motion object comprisingmotion-related data thereof, the stream of motion events and themotion-related data representing the motion of the first source-motionobject; processing, by one or more processors of the first source-motionobject, the motion-related data by converting captured motion-relateddata from a first format to a second format; transmitting, by the firstsource-motion object, the processed motion-related data to a firstchannel of a plurality of channels on a server; forwarding, by theserver, the processed motion-related data to the target-motion devicethat subscribes the first channel; and replaying, by the target-motiondevice, the stream of motion events based on at least the processedmotion-related data.
 2. The computerized method of claim 1, wherein saidprocessing, by the one or more processors of the first source-motionobject, the motion-related data comprises: processing, by the one ormore processors of the first source-motion object, the motion-relateddata by converting captured motion-related data from a first format to atext-based format for publishing on the server.
 3. The computerizedmethod of claim 1 further comprising: receiving, by the server, arequest from the target-motion device for subscribing the first channel;if the target-motion device is connected to a second channel of theplurality of channels associated with a second source-motion object,disconnecting, by the server, the target-motion device from the secondchannel; and connecting, by the server, the target-motion device to thefirst channel.
 4. The computerized method of claim 1 further comprising:organizing, by the server, the processed motion-related data in ahierarchical structure having a plurality of topics.
 5. The computerizedmethod of claim 1 further comprising: scaling, by the target-motiondevice, at least a portion of the processed motion-related data.
 6. Thecomputerized method of claim 1 further comprising: adjusting, by thetarget-motion device, a coordinate system of at least a portion of theprocessed motion-related data for adapting to the target-motion device.7. The computerized method of claim 1 further comprising: capturing,using the one or more sensors, audio/video data related to the firstsource-motion object; transmitting, by the first source-motion object,the audio/visual data to the target- motion device via the server;presenting, by the server, the audio/visual data on the target-motiondevice; and temporally synchronizing, by the target-motion device, theaudio/visual data with the processed motion-related data.
 8. Thecomputerized method of claim 1, wherein the motion-related datacomprises at least one of a linear velocity, an acceleration, avibration, thermal data, an altitude, gyroscopic data, and batteryvoltage.
 9. The computerized method of claim 1, wherein saidtransmitting, by the first source-motion object, the processedmotion-related data to the server comprises: transmitting, by the firstsource-motion object, the processed motion-related data to the serverusing a Message Queueing Telemetry Transport protocol.
 10. One or morenon-transitory computer-readable storage devices comprisingcomputer-executable instructions for controlling a target-motion devicebased on motion of a first source-motion object, wherein theinstructions, when executed, cause a processing structure to performactions comprising: capturing, using one or more sensors, a stream ofmotion events of the first source-motion object comprisingmotion-related data thereof, the stream of motion events and themotion-related data representing the motion of the first source-motionobject; processing, by one or more processors of the first source-motionobject, the motion-related data by converting captured motion-relateddata from a first format to a second format; transmitting, by the firstsource-motion object, the processed motion-related data to a firstchannel of a plurality of channels on a server; forwarding, by theserver, the processed motion-related data to the target-motion devicethat subscribes the first channel; and replaying, by the target-motiondevice, the stream of motion events based on at least the processedmotion-related data.
 11. The one or more non-transitorycomputer-readable storage devices according to claim 10, wherein saidprocessing, by the one or more processors of the first source-motionobject, the motion-related data comprises: processing, by the one ormore processors of the first source-motion object, the motion-relateddata by converting captured motion-related data from a first format to atext-based format for publishing on the server.
 12. The one or morenon-transitory computer-readable storage devices according to claim 10,wherein the instructions, when executed, cause the processing structureto perform further actions comprising: receiving, by the server, arequest from the target-motion device for subscribing the first channel;if the target-motion device is connected to a second channel of theplurality of channels associated with a second source-motion object,disconnecting, by the server, the target-motion device from the secondchannel; and connecting, by the server, the target-motion device to thefirst channel.
 13. The one or more non-transitory computer-readablestorage devices according to claim 10, wherein the instructions, whenexecuted, cause the processing structure to perform further actionscomprising: organizing, by the server, the processed motion-related datain a hierarchical structure having a plurality of topics.
 14. The one ormore non-transitory computer-readable storage devices according to claim10, wherein the instructions, when executed, cause the processingstructure to perform further actions comprising: scaling, by thetarget-motion device, at least a portion of the processed motion-relateddata.
 15. The one or more non-transitory computer-readable storagedevices according to claim 10, wherein the instructions, when executed,cause the processing structure to perform further actions comprising:adjusting, by the target-motion device, a coordinate system of at leasta portion of the processed motion-related data for adapting to thetarget-motion device.
 16. The one or more non-transitorycomputer-readable storage devices according to claim 10, wherein theinstructions, when executed, cause the processing structure to performfurther actions comprising: capturing, using the one or more sensors,audio/video data related to the first source-motion object;transmitting, by the first source-motion object, the audio/visual datato the target-motion device via the server; presenting, by the server,the audio/visual data on the target-motion device; and temporallysynchronizing, by the target-motion device, the audio/visual data withthe processed motion-related data.
 17. The one or more non-transitorycomputer-readable storage devices according to claim 10, wherein themotion-related data comprises at least one of a linear velocity, anacceleration, a vibration, thermal data, an altitude, gyroscopic data,and battery voltage.
 18. The one or more non-transitorycomputer-readable storage devices according to claim 10, wherein saidtransmitting, by the first source-motion object, the processedmotion-related data to the server comprises: transmitting, by the firstsource-motion object, the processed motion-related data to the serverusing a Message Queueing Telemetry Transport protocol.
 19. A server forcontrolling a target-motion device based on motion of a firstsource-motion object, the server comprising: one or more communicationcomponents; one or more storage components; and one or more processorscoupled to the one or more communication components and the one or morestorage components for: receiving motion-related data of a stream ofmotion events from the first source-motion object via a network to afirst channel of a plurality of channels of the server, themotion-related data representing the motion of the first source-motionobject; and forwarding the processed motion-related data to thetarget-motion device for replaying the stream of motion events by thetarget-motion device based on at least the processed motion-relateddata.
 20. The server of claim 19, wherein the motion-related data is ina text-based format converted from data captured by the firstsource-motion object.